In a numerical control machining system, CAM (computer aided manufacturing) software often divides complex curves into small lines as interpolation trajectories of the numerical control machining system. In recent years, CAM has gradually used NURBS (non-uniform rational B-splines) curve to simulate the complex curves, and transmits the parameters of NURBS to the numerical control machining system as interpolation data, which greatly reduces the delivery of transmitted files, and since the frequent acceleration and deceleration are reduced, the machining efficiency is much higher than the small line machining, therefore NURBS interpolation is becoming to the mainstream of numerical control machining.
Since the curvature of the NURBS curve is changed non-linearly, it is necessary to calculate the interpolation velocity and the acceleration in real time during machining so as to avoid exceeding the machining error limitations and machine acceleration capability limitations. Although the existing interpolation algorithms are usually capable of interpolating the acceleration segments under the limitation of the allowable maximum velocity curve, these algorithms will not consider about the velocity sudden change in the deceleration phase, which results in that the acceleration exceeds the limitation of maximum centripetal acceleration.
Therefore, in the prior art, the acceleration in the deceleration phase is prevented from exceeding the limitation through backtracking method or bidirectional acceleration method. However, when using the backtracking method, the amount of backtracking calculations for obtaining a velocity curve that meeting the acceleration requirements is unpredictable, and there is no feasible method to estimate the end velocity of the acceleration phase at each retrace, which can merely explore through multiple calculations. At the same time, the interpolation point has to be recalculated after backtracking, and the velocity of the interpolation point should be re-estimated, hence the algorithm is computationally intensive and very time-consuming, which cannot ensure to complete the backtracking and recalculation of multiple interpolation points in a single interpolation cycle, so it's application in real-time interpolation is limited. When using the bidirectional acceleration method, a larger initial velocity difference between two ends will cause the side of larger initial velocity to stop interpolation and wait for the other side's interpolation, until the interpolation velocity of the other side satisfies the requirements to meet. Since the interpolation of the two directions are started at the same time, if the positive interpolation needs to wait the reverse interpolation for more than one cycle in a real machining process, the velocity and the position of the positive interpolation cannot be controlled, hence the algorithm cannot be used in this case.